package com.j2eefast.bussiness.contract.entity;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;


import java.io.Serializable;
import java.util.Date;

/**
 * <p>员工信息</p>
 *
 * @author: summer
 * @date: 2021-06-09 10:41
 * @web: http://www.letukeji.cn
 * @version: 1.0.1
 */
@Data
@TableName("hr_personnel")
//设置头高
@HeadRowHeight(20)
@ColumnWidth(15)		// 表头行宽
@HeadFontStyle(fontHeightInPoints = 12)
@ExcelIgnoreUnannotated
public class HrPersonnelEntity implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)
    protected Integer id;


    //员工编号
    @ExcelProperty(value = "员工编号",index = 0)
    @TableField(value = "user_code")
    protected String userCode;

    //员工姓名
    @ExcelProperty(value = "员工姓名",index = 1)
    @TableField(value = "user_name")
    protected String userName;

    //性别
    @ExcelProperty(value = "性别",index = 2)
    @TableField(value = "sex")
    protected String sex;
    //出生年月
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "birthday")
    @ExcelProperty(value = "出生年月",index = 3)
    protected Date birthday;
    //籍贯
    @TableField(value = "natives")
    @ExcelProperty(value = "籍贯",index = 4)
    protected String natives;
    //身份证
    @TableField(value = "card")
    @ExcelProperty(value = "身份证",index = 5)
    protected String card;
    //政治面貌
    @TableField(value = "political")
    protected String political;
    //婚姻面貌
    @TableField(value = "marriage")
    protected String marriage;
    //名族
    @TableField(value = "nation")
    protected String nation;
    //邮箱
    @TableField(value = "email")
    protected String email;
    //电话
    @TableField(value = "mobile")
    @ExcelProperty(value = "电话",index = 6)
    protected String mobile;
    //地址
    @TableField(value = "address")
    @ExcelProperty(value = "地址",index = 7)
    protected String address;
    //部门id
    @TableField(value = "dept_id")
    @ExcelProperty(value = "部门",index = 8)
    protected String deptId;
    //职位
    @TableField(value = "position")
    @ExcelProperty(value = "职位",index = 9)
    protected String position;
    //职称
    @TableField(value = "title")
    @ExcelProperty(value = "职称",index = 10)
    protected String title;
    //聘用形式
    @TableField(value = "employ")
    protected String employ;
    //银行
    @TableField(value = "bank")
    protected String bank;
    //最高学历
    @TableField(value = "qualifications")
    protected String qualifications;
    //专业
    @TableField(value = "major")
    protected String major;
    //毕业学校
    @TableField(value = "school")
    protected String school;
    //录用日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "employ_time")
    @ExcelProperty(value = "录用日期",index = 11)
    protected Date employTime;
    //转正日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "confirmation_time")
    @ExcelProperty(value = "转正日期",index = 12)
    protected Date confirmationTime;
    //离职日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "quit_time")
    @ExcelProperty(value = "离职日期",index = 13)
    protected Date quitTime;
    //录用来源
    @TableField(value = "source")
    protected String source;
    //是否在职（0 在职 1离职）
    @TableField(value = "status")
    @ExcelProperty(value = "是否在职",index = 14)
    protected int status;
    //个人简历
    @TableField(value = "resume")
    protected String resume;
    //照片
    @TableField(value = "avatar")
    protected String avatar;
    //其他
    @TableField(value = "other")
    protected String other;
    //合同签订日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "contract_time")
    @ExcelProperty(value = "签订合同日期",index = 15)
    protected Date contractTime;
    //合同到期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "contract_end")
    protected Date contractEnd;
    //保险办理
    @TableField(value = "insurance")
    protected String insurance;
    //养老保险号
    @TableField(value = "pension_card")
    protected String pensionCard;
    //医疗保险号
    @TableField(value = "medical_card")
    protected String medicalCard;
    //社会保险号
    @TableField(value = "society_card")
    protected String societyCard;
    //离职时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @TableField(value = "quit_data")
    protected Date quitData;
    //离职类型
    @TableField(value = "quit_type")
    protected int quitType;
    //离职原因
    @TableField(value = "quit_reason")
    protected String quitReason;
    //应急手机
    @TableField(value = "iphone")
    @ExcelProperty(value = "员工姓名",index = 16)
    protected String iphone;
    //更新人
    @TableField(value = "basic_wages")
    protected String basicWages;
    //更新人
    @TableField(value = "bank_code")
    protected String bankCode;

    //备注
    @TableField(value = "remark")
    protected String remark;
    //创建日期
    @TableField(value = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    protected Date createTime;
    //更新日期
    @TableField(value = "update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    protected Date updateTime;
    //创建人
    @TableField(value = "create_by")
    protected String createBy;
    //更新人
    @TableField(value = "update_by")
    protected String updateBy;



    @Override
    public String toString() {
        return super.toString();
    }
}
